from __future__ import division
import urllib

def datoslolking(nombre,server):
##    Funcion que devuelve ratings y campeones mas jugados. Info obtenida de LoLKing
##    Server puede ser [euw,na,eune]  mas?
##    Devuelve info asi [rating3v3,ratinsolo,rating5v5,campeon1,jugadas1,%victorias1,campeon2,etc...] de mas a menos usado
##      Si devuelve 0 es que el jugador no existe
    try:
        nombre2=nombre.split(' ')
        nombre=nombre2[0]
##        Esto puede que falle
        for w in range(len(nombre2)-1):
            nombre+='+{0}'.format(nombre2[w+1])
        filehandle = urllib.urlopen('http://www.lolking.net/search?name={0}'.format(nombre))

        for lines in filehandle.readlines():
            if "window.location='/summoner/{0}/".format(server) in lines:
               a=lines
               break

        filehandle.close()
        buscafin=0
        for i in range(len(a)):

            if a[i:i+3]==server:
                empieza=i+4
                buscafin=1
            if a[i]=="'" and buscafin==1:
                termina=i
                break
                
        numerojug=a[empieza:termina]

        filehandle2 = urllib.urlopen('http://www.lolking.net/summoner/{0}/{1}'.format(server,numerojug))
        solo5camp=0
        solo3ratings=0
        #EL orden es [Team3,Solo5,Team5]
        campeones=[0,0,0,0,0]
        ratingline=[0,0,0]
        for lines in filehandle2.readlines():
            if "personal_ratings_rating" in lines:
               ratingline[solo3ratings]=lines
               solo3ratings+=1
        ##       if solo3ratings==3:
        ##           break
            if "#ffdd57" in lines:
               campeones[solo5camp]=lines
               solo5camp+=1
##               print lines
               if solo5camp==5:
                   break
##        print campeones
        filehandle2.close()
        ## Ahora depuro ratings
        for j in range(3):
            buscafin=0
            for i in range(len(ratingline[j])):
                if ratingline[j][i:i+8]=='personal':
                    empieza=i+25
                    buscafin=1
                if ratingline[j][i]=="<" and buscafin==1:
                    termina=i
                    try:
                        ratingline[j]=int(ratingline[j][empieza:termina])
                    except:
                        ratingline[j]=ratingline[j][empieza:termina]
                    break
##        print ratingline
        #Ahora depuro campeones
##        campeon=[0,0,0,0,0]
        
        numeros=[0,0,0,0,0,0,0,0,0,0]
        for j in range(5):
            buscafin2=0
            buscafin3=0
            buscafin=0
            nomascomas=0
            if campeones[j]!=0:
                for i in range(len(campeones[j])):
                    if campeones[j][i:i+4]=='name':
                        empieza=i+7
                        buscafin=1
                    if campeones[j][i]=="," and buscafin==1 and nomascomas==0:
                        termina=i-1
                        nomascomas=1
    ##                    campeon[j]=campeones[j][empieza:termina]
                    if campeones[j][i:i+6]=="values":
                        empieza2=i+9
                        buscafin2=1
                    if campeones[j][i]=="," and buscafin3==1:
                        termina3=i
                        numeros[j*2]=int(campeones[j][empieza2:termina2])
                        numeros[j*2+1]=int(int(campeones[j][empieza3:termina3])/numeros[j*2]*100)
                        campeones[j]=campeones[j][empieza:termina]
                        break
                    if campeones[j][i]=="," and buscafin2==1:
                        termina2=i
                        empieza3=i+2
                        buscafin3=1

                    
##        print campeones
##        for i in range(5):
##            campeon=
        datos=ratingline
##        print numeros
        for i in range(5):
            datos=datos+[campeones[i],numeros[i*2],numeros[i*2+1]]
        return datos
    except:
        return 0
        pass
